/*
 * @Author: prince
 * @LastEditors: Please set LastEditors
 * @Date: 2019-04-22 10:52:58
 * @LastEditTime: 2019-12-03 09:33:20
 */

import Axios from 'axios';
import Qs from 'qs';
import {
  Message
} from 'element-ui';


// const BASE_URL = ''
let baseURL = ""
if (process.env.NODE_ENV === 'production') {
  baseURL = "https://model.cn.utools.club"
}

// axios 初始化
const axios = Axios.create({
  baseURL,
  timeout: 20000,
  method: 'POST',
  // headers: {
  //   'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'
  // },
  // transformRequest: [(data) => {
  //   data = Qs.stringify(data)
  //   return data;
  // }]
})
// axios 全局请求拦截配置
let timer = null; // 避免系统错误出现多次提示
axios.interceptors.response.use(function (res) {
  timer = null;
  // 全局接口拦截器
  if (['1002', '1003', '1005'].indexOf(res.data.code + '') > -1) {
    // 特殊处理的状态码
  }
  // code = 0 直接返回获取到的数据
  if (res.data.code == 200) {
    return res.data;
  } else {
    //失败500
    Message({
      message: res.data.message,
      type: 'error',
      customClass: 'custom-message'
    });

    return res.data
  }
}, function (err) {
  if (!timer) {
    timer = true;
    // Do something with response error
    if (err.response && err.response.status != '404') {
      Message({
        message: '系统未知异常',
        type: 'error',
        customClass: 'custom-message'
      });
    } else {
      // 链接超时 没有返回状态吗  前端提示反馈
      Message({
        message: '连接超时',
        type: 'error',
        customClass: 'custom-message'
      });
    }
  }
  return Promise.reject(err);
});
// 注意不是覆写 get 方法 直接新增一个 $get 来方便可以像post一样传参发送 get 请求
axios.$get = (url, data, config) => {
  return axios.get(url + '?' + Qs.stringify(data), config)
}

export default axios;